const express = require('express')

const app = express()

// 定义中间件

/* 
 多个中间件和路由共享同一份req和res
 可以给req和res添加属性或方法，共享数据

*/
const mw =  (req, res, next)=>{
  console.log('mw中间件');
  // 获取请求到达服务器的时间
  req.startTime = Date.now()
  // 把流转关系转交给下一个中间件或者路由
  next()
}

const mw2 =  (req, res, next)=>{
  console.log('mw2中间件');
  // 获取请求到达服务器的时间
  req.startTime = Date.now()
  // 把流转关系转交给下一个中间件或者路由
  next()
}

// app.use将mw注册为全局生效的中间件
// app.use(mw)

// 只在当前路由中生效--局部中间件
app.get('/',mw, (req, res) => {
  res.send('Home Page'+req.startTime)
})


app.get('/user', (req, res) => {
  res.send('user Page'+req.startTime)
})

// 调用多个局部中间件
app.get('/some',mw,mw2, (req, res) => {
  res.send('some Page'+req.startTime)
})

app.listen(80, () => {
  console.log('express server created  running at http://127.0.0.1');
})